/**
 * 
 */
package com.hanhai.zrb.api.biz.service;

import java.util.List;
import java.util.Map;
import java.util.TreeMap;

import com.hanhai.zrb.model.user.UserInfo;
import com.hanhai.zrb.model.user.enums.UserInfoName;
import com.hanhai.zrb.model.user.vo.UserInfoVO;

/**
 * @author ruiqi
 *
 */
public interface UserInfoService {

	/**
	 * 根据userId和对应的属性名List查询对应属性
	 * 
	 * @param userId
	 * @param queryNameList
	 * @return
	 */
	public UserInfoVO findByEnumNames(String userId,List<String> queryNameList);
	
	/**
	 * 根据userId和属性名称枚举List查询对应属性
	 * 
	 * @param userId
	 * @param queryNameList
	 * @return
	 */
	public UserInfoVO findByNameEnums(String userId,List<UserInfoName> queryNameList);
	
	public void batchSave(String userId,List<UserInfo> userInfoList	);
	
	/**
	 * 根据userId和 属性名对应的value的Map批量保存
	 * 
	 * @param userId
	 * @param infoValueMap
	 */
	public void batchSave(String userId,TreeMap<UserInfoName,String> infoValueMap);
	
	public void batchSave(UserInfoVO userInfoVO);

	public Map<String, Object> getOne(String userId,UserInfoName infoName);
	
	public void updateOne(String userId,UserInfoName infoName,String infoValue);
	
	public void save(UserInfo userInfo);
	
	public List<Long> queryUidsByLocation(String location);
	
	public Map<Long, Map<String, String>> findByUidsAndInfoNames(List<Long> uids, List<String> infoNames);
}
